//package com.lsh.controller;
//
//import com.lsh.consts.AppConsts;
//import com.lsh.model.Result;
//import com.lsh.respsitory.SpringScheduledCronRepository;
//import com.lsh.task.ScheduledOfTask;
//import com.lsh.util.CronUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.ApplicationContext;
//import org.springframework.stereotype.Controller;
//import org.springframework.ui.Model;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.ResponseBody;
//
///**
// * @author ：LiuShihao
// * @date ：Created in 2020/8/24 4:54 下午
// * @desc ：
// */
//@Controller
//@RequestMapping("/scheduled/task")
//public class TaskController {
//    @Autowired
//    private ApplicationContext context;
//    @Autowired
//    private SpringScheduledCronRepository cronRepository;
//    /**
//     * 查看任务列表
//     */
//    @RequestMapping("/taskList")
//    public String taskList(Model model) {
//        model.addAttribute("cronList", cronRepository.findAll());
//        return "task-list";
//    }
//    /**
//     * 编辑任务cron表达式
//     */
//    @ResponseBody
//    @RequestMapping("/editTaskCron")
//    public Result<Void> editTaskCron(String cronKey, String newCron) {
//        if (!CronUtils.isValidExpression(newCron)) {
//            throw new IllegalArgumentException("失败,非法表达式:" + newCron);
//        }
//        cronRepository.updateCronExpressionByCronKey(newCron, cronKey);
//        return new Result<>(AppConsts.SUCCESS, "更新成功");
//    }
//    /**
//     * 执行定时任务
//     */
//    @ResponseBody
//    @RequestMapping("/runTaskCron")
//    public Result<Void> runTaskCron(String cronKey) throws Exception {
//        ((ScheduledOfTask) context.getBean(Class.forName(cronKey))).execute();
//        return new Result<>(AppConsts.SUCCESS, "执行成功");
//    }
//    /**
//     * 启用或禁用定时任务
//     */
//    @ResponseBody
//    @RequestMapping("/changeStatusTaskCron")
//    public Result<Void> changeStatusTaskCron(Integer status, String cronKey) {
//        cronRepository.updateStatusByCronKey(status, cronKey);
//        return new Result<>(AppConsts.SUCCESS, "操作成功");
//    }
//}
